package com.zhdl.hardware.robot.borunte.repository;

import com.zhdl.modules.tools.CommonCallback;

public interface BorunteCmdHandleDao {

    /**
     * 伯朗特机器人-读取当前世界坐标
     * 0003000000060103091C000C
     */
    void borunteReadLocation(CommonCallback<byte[]> callback);

    /**
     * 伯朗特机器人-设置原点高度
     * 对应地址: 820(55A0)-825
     *
     * @param originLocation 当前位置XYZ 以及需要替换的Z
     */
    void borunteSetOriginZ(int[] originLocation);

    /**
     * 伯朗特机器人-设置抓取点坐标
     * 设置 机器人抓取点 800(558C)-805
     *
     * @param pickLocation 抓取点 以及需要替换的Z
     */
    void borunteSetPickPoint(int[] pickLocation);

    /**
     * 伯朗特机器人-设置抓取点坐标正上方
     * 设置 机器人抓取点 810(5596)-815
     *
     * @param pickLocation 抓取点 以及需要替换的Z
     */
    void borunteSetPickZ(int[] pickLocation);

    /**
     * 伯朗特机器人-读取开关量 M 系列信号
     * 读取 M10- 160(A0)至 M114线圈值
     *
     * @param address M信号地址
     */
    void borunteReadSwitch(int address, CommonCallback<byte[]> callback);

    /**
     * 伯朗特机器人-写入开关量 M 系列信号
     * 设置 M10- 160(A0)至 M114线圈值
     *
     * @param address M信号地址
     * @param open    true/false
     */
    void borunteWriteSwitch(int address, boolean open);
}
